﻿<%@ Page Title="" Language="C#" ValidateRequest="false" MasterPageFile="~/TestSystem/TestSystemMain.Master" AutoEventWireup="true" Inherits="Admin_ManageTests" Codebehind="ManageTests.aspx.cs" %>

<asp:Content ID="MngTests" ContentPlaceHolderID="TsContent" Runat="Server">
<div class="admin-panel">
    <asp:ListView runat="server" ID="lvwTests" DataKeyNames="TestID" ConvertEmptyStringToNull="true" 
    InsertItemPosition="LastItem" DataSourceID="testsObjSource" 
    onitemcommand="lvwTests_ItemCommand" 
    onitemdeleted="lvwTests_ItemDeleted" 
    oniteminserted="lvwTests_ItemInserted"
    onitemupdating="lvwTests_ItemUpdating" 
    >
    <LayoutTemplate>
        <div class="command-buttons">
            <a style="padding-left:10px; padding-right:10px;" href="#insert">Нове запитання</a>
        </div>
        <div id="filter" style="padding-left: 10px;">
            Складність:<asp:DropDownList runat="server" ID="ddlComplexity" DataTextField="Complexity"></asp:DropDownList>&nbsp;
            Тип запитання:<asp:DropDownList runat="server" ID="ddlType" DataTextField="TestType"></asp:DropDownList>&nbsp;
            <asp:Button runat="server" ID="btnFilter" Text="Фільтрувати" OnClick="btnFilter_Click" />&nbsp;&nbsp;
            <asp:Button runat="server" ID="btnAll" Text="Всі" OnClick="btnAll_Click" />
        </div>
        <div style="padding-left:10px;">
            <asp:DataPager ID="pager1" PageSize="20" runat="server">
                <Fields><asp:NumericPagerField /></Fields>
            </asp:DataPager>
        </div>
        <div ID="itemPlaceholder" runat="server">
        </div>
        <div style="padding-left:10px;">
            <asp:DataPager ID="pager2" PageSize="20" runat="server">
                <Fields><asp:NumericPagerField /></Fields>
            </asp:DataPager>
        </div>
    </LayoutTemplate>
    <ItemTemplate>
        <div class="item-div">
            <div class="item">
                <p><%# Eval("Body") %></p>
                <p><span class="prop-label">Порядок:</span><%# Eval("TestOrder") %></p>
                <p><span class="prop-label">Рівень складності:</span><%# Eval("Complexity") %></p>
                <p><span class="prop-label">Тип запитання:</span><%# Eval("TestType") %></p>
                <div class="command-buttons">
                    <asp:LinkButton ID="btnEdit" runat="server" CommandName="Edit" CssClass="command-button" Text="Редагувати"></asp:LinkButton>
                    <asp:LinkButton ID="btnDelete" runat="server" CommandName="Delete" CssClass="command-button" Text="Видалити"
                     OnClientClick="return confirm('Ви впевнені, що хочете видалити дане запитання ?') == true"></asp:LinkButton>
                    <asp:LinkButton ID="btnAllAnswers" runat="server" CommandName="ShowAllAnswers" CssClass="command-button" Text="Відповіді" CommandArgument='<%# Eval("TestID") %>'></asp:LinkButton>
                    <asp:LinkButton ID="btnAddAnswers" runat="server" CommandName="AddAnswers" CssClass="command-button" Text="Додати Відповідь" CommandArgument='<%# Eval("TestID") %>'></asp:LinkButton>
                </div>
            </div>
        </div>
    </ItemTemplate>
    <EditItemTemplate>
        <div class="edititem-div">
            <div class="item">
                <p><span class="prop-label">Питання</span>
                <asp:TextBox ID="txtDesc1" runat="server" ValidationGroup="edit" TextMode="MultiLine" Text='<%# Bind("Body") %>'></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtDesc1" ErrorMessage="Необіхідно ввести запитання" ValidationGroup="edit">*</asp:RequiredFieldValidator>
                </p>
                
                <p><span class="prop-label">Порядок</span>
                <asp:TextBox runat="server" ID="txtTOrder" CssClass="txtSmall" Text='<%# Bind("TestOrder") %>' ValidationGroup="edit"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ValidationGroup="edit" ErrorMessage="Необхідно ввести порядок запитання" ControlToValidate="txtTOrder">*</asp:RequiredFieldValidator>
                </p>
                
                <p><span class="prop-label">Рівень складності</span>
                <asp:TextBox runat="server" ID="txtCmpl" CssClass="txtSmall" Text='<%# Bind("Complexity") %>' ValidationGroup="edit"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ValidationGroup="edit" ErrorMessage="Необхідно ввести рівень складності запитання" ControlToValidate="txtCmpl">*</asp:RequiredFieldValidator>
                </p>

                <p><span class="prop-label">Тип запитання</span>
                <asp:TextBox runat="server" ID="txtTType" CssClass="txtSmall" Text='<%# Bind("TestType") %>' ValidationGroup="edit"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ValidationGroup="edit" ErrorMessage="Необхідно ввести тип запитання" ControlToValidate="txtTType">*</asp:RequiredFieldValidator>
                </p>
            
                <div id="validation-summary">
                    <asp:ValidationSummary ID="ValidationSummary1" runat="server" HeaderText="Виправте наступні помилки:" DisplayMode="List" ValidationGroup="edit" />
                </div>
                <div class="command-buttons">
                    <asp:LinkButton ID="btnUpdate" runat="server" CommandName="Update" Text="Оновити" CssClass="command-button" ValidationGroup="edit" />
                    <asp:LinkButton ID="btnCancel" runat="server" CommandName="Cancel" CssClass="command-button" Text="Відмінити" />
                </div>
            </div>
        </div>
    </EditItemTemplate>
    <InsertItemTemplate>
        <div class="item-div">
            <div class="item">
                <a id="insert"></a>
                <p><span class="prop-label">Питання</span>
                <asp:TextBox ID="txtDesc1" runat="server" ValidationGroup="insert" TextMode="MultiLine" Text='<%# Bind("Body") %>'></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtDesc1" ErrorMessage="Необіхідно ввести запитання" ValidationGroup="insert">*</asp:RequiredFieldValidator>
                </p>
                
                <p><span class="prop-label">Порядок</span>
                <asp:TextBox runat="server" ID="txtTOrder" CssClass="txtSmall" Text='<%# Bind("TestOrder") %>' ValidationGroup="insert"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ValidationGroup="insert" ErrorMessage="Необхідно ввести порядок запитання" ControlToValidate="txtTOrder">*</asp:RequiredFieldValidator>
                </p>
                
                <p><span class="prop-label">Рівень складності</span>
                <asp:TextBox runat="server" ID="txtCmpl" CssClass="txtSmall" Text='<%# Bind("Complexity") %>' ValidationGroup="insert"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ValidationGroup="insert" ErrorMessage="Необхідно ввести рівень складності запитання" ControlToValidate="txtCmpl">*</asp:RequiredFieldValidator>
                </p>

                <p><span class="prop-label">Тип запитання</span>
                <asp:TextBox runat="server" ID="txtTType" CssClass="txtSmall" Text='<%# Bind("TestType") %>' ValidationGroup="insert"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ValidationGroup="insert" ErrorMessage="Необхідно ввести тип запитання" ControlToValidate="txtTType">*</asp:RequiredFieldValidator>
                </p>
            
                <div id="validation-summary">
                    <asp:ValidationSummary ID="ValidationSummary1" runat="server" HeaderText="Виправте наступні помилки:" DisplayMode="List" ValidationGroup="insert" />
                </div>
                <div class="command-buttons">
                    <asp:LinkButton ID="btnInsert" runat="server" CommandName="Insert" Text="Додати" CssClass="command-button" ValidationGroup="insert" />
                    <asp:LinkButton ID="btnCancel" runat="server" CommandName="Cancel" CssClass="command-button" Text="Відмінити" />
                </div>
            </div>
        </div>
    </InsertItemTemplate>
    </asp:ListView>
    
    <asp:ObjectDataSource ID="testsObjSource" runat="server" EnablePaging="true" DeleteMethod="Remove" SelectCountMethod="GetCountByQuizID" InsertMethod="Add" SelectMethod="GetByQuizID" 
        TypeName="TestSystem.BLL.TestSystem.Test"
        OnInserting="testsObjSource_Inserting"
        OnDeleting="testsObjSource_Deleting"
        >
        <DeleteParameters>
            <asp:Parameter Name="testID" Type="Int32" />
        </DeleteParameters>
        <SelectParameters>
            <asp:QueryStringParameter DefaultValue="0" Name="quizID" QueryStringField="quizID" Type="Int32" />
            <asp:Parameter Name="complexityFilter"  DefaultValue="" Type="Int32" />
            <asp:Parameter Name="typeFilter" Type="Int32" />
        </SelectParameters>
        <InsertParameters>
            <asp:Parameter Name="Body" Type="String" />
            <asp:Parameter Name="TestOrder" Type="Int32" />
            <asp:Parameter Name="Complexity" Type="Int32" />
            <asp:Parameter Name="TestType" Type="Int32" />
        </InsertParameters>
    </asp:ObjectDataSource>
</div>
</asp:Content>

